package tsb.dominio.dispositivos.hosfinal;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import tsb.dominio.enumeraciones.AsignacionIP;
import tsb.dominio.interfaces.IP;
import tsb.dominio.interfaces.InterfaceDeConeccion;

/**
 * @author Federico Gomez
 * @version 1.0 @created 16-Mar-2011 08:38:41 p.m.
 */
public class Server extends HostFinal {

    private ArrayList<tsb.dominio.dispositivos.Servicio> servicios;
    private IP servidorDNS;
    private AsignacionIP DHCP_Static;

    public Server() {
    }

    public Server(int x, int y, String nombreAMostrar) {
        this.x = x;
        this.y = y;
        this.nombreAMostrar = nombreAMostrar;
    }

    public Server(boolean estado, IP gateway, ArrayList<InterfaceDeConeccion> interfaces, String NobreAMostrar, ArrayList<tsb.dominio.dispositivos.Servicio> servicios, int x, int y, IP servidorDNS, AsignacionIP DHCP_Static) {
        this.estado = estado;
        this.gateway = gateway;
        this.interfaces = interfaces;
        this.nombreAMostrar = NobreAMostrar;
        this.x = x;
        this.y = y;
        this.servicios = servicios;
        this.DHCP_Static = DHCP_Static;
        this.servidorDNS = servidorDNS;

    }

    public Server(int x, int y, String nombreAMostrar, ArrayList<InterfaceDeConeccion> interfaces) {
        this.x = x;
        this.y = y;
        this.nombreAMostrar = nombreAMostrar;
        this.interfaces = interfaces;
    }

    public AsignacionIP getDHCP_Static() {
        return DHCP_Static;
    }

    public void setDHCP_Static(AsignacionIP DHCP_Static) {
        this.DHCP_Static = DHCP_Static;
    }

    public List getServicios() {
        return servicios;
    }

    public IP getServidorDNS() {
        return servidorDNS;
    }

    public void setServidorDNS(IP servidorDNS) {
        this.servidorDNS = servidorDNS;
    }

    public void setServicios(ArrayList<tsb.dominio.dispositivos.Servicio> servicios) {
        this.servicios = servicios;
    }

    public String toString() {
        String cad = " --- Server ---\n"
                + "Nombre a Mostrar: " + this.nombreAMostrar + "\n"
                + "Estado: " + this.estado + "\n"
                + "Getway: " + this.gateway + "\n"
                + "Servicios: " + this.servicios + "\n"
                + "Ubicacion: x=" + this.x + " y=" + this.y + "\n";

        if (interfaces != null) {
            Iterator iter = this.interfaces.iterator();
            while (iter.hasNext()) {
                InterfaceDeConeccion i = (InterfaceDeConeccion) iter.next();
                cad = cad + i.toString();
            }
        }


        return cad;
    }
}